Query: A Functional Programming Construct